package com.example.springdome;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.util.Map;


import java.util.TreeMap;

public class ExcelColumnCounters {
    public static void main(String[] args) {
        String excelFilePath = "C:\\Users\\28484\\Desktop\\汐岸组团_125.xlsx"; // 替换为你的文件路径
        int columnIndex = 9; // 指定要统计的列，第一列的索引为0

        Map<String, Integer> valueCountMap = new TreeMap<>(); // 使用TreeMap来自动排序
        int totalCount = 0; // 用于统计总个数

        try (FileInputStream inputStream = new FileInputStream(excelFilePath);
             Workbook workbook = new XSSFWorkbook(inputStream)) {
            Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作簿
            // 跳过标题行，假设第一行是标题
            Row firstRow = sheet.getRow(0);
            if (firstRow == null) {
                throw new IllegalArgumentException("指定的工作表为空");
            }
            for (int rowIndex = 1; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
                Row row = sheet.getRow(rowIndex);
                if (row != null) {
                    Cell cell = row.getCell(columnIndex);
                    if (cell != null) {
                        // 将单元格内容转换为字符串
                        DataFormatter formatter = new DataFormatter();
                        String cellValue = formatter.formatCellValue(cell).trim();

                        // 更新统计数据
                        valueCountMap.put(cellValue, valueCountMap.getOrDefault(cellValue, 0) + 1);
                        totalCount++; // 增加总个数
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 打印总个数
        System.out.println("汐岸组团"+"投票结果" );
        // 打印每个唯一值及其个数，并已经根据键排序
        valueCountMap.forEach((key, value) -> System.out.println("金额："+key + "元 => " + value+"票"));
        // 打印总个数
        System.out.println("投票总数: " + totalCount);
    }
}